The field of invention involves intermediaries serving between client applications and service providers over a network. More specifically, network intermediaries providing dynamic proxying between client applications and service providers are described and provided herein.
Modern networks are regularly organized in a client-application and service-provider configuration. Under this configuration, a client application may obtain information or services over the network from service providers when carrying out client functionality. The service providers may be providing data, messages, data manipulation, or the like, to the clients in these examples. The service providers may be providing services to a single client or multiple clients across a network. The clients may be requesting the services from the providers because the providers are better situated or configured than the client to obtain the data or provide the services. These services may be requested on a subscription basis.
Modern networks have been configured using a Service Oriented Architecture (SOA) in order to package services for use by numerous clients or domains. SOA architecture can be configured to use a mesh of unassociated and loosely coupled software services to provide various functions throughout the network. These software services have no calls to each other embedded in their code. Rather, instead of embedding service calls to each other in their source code, agreed upon protocols are used to pass messages and requests between them.
SOA can serve to separate functions, offered over a network, into distinct units and services. These distinct units and services may be offered to allow clients to combine and reuse the discrete units and services in various applications over the network. Software modules in an SOA may communicate over the network to each other and to client applications by passing data over the network from one software module to another software module and, by themselves, coordinating an activity between two or more modules.
Networks employing an SOA have a need to enable applications running on different platforms or operating systems to communicate with each other at the application level. This need has been addressed by the Simple Object Access Protocol (SOAP), an application level solution. SOAP is a language and platform-independent XML syntax for exchanging messages over a network. SOAP defines a set of rules for structuring messages that can be used for simple one-way messaging. SOAP also serves to codify the use of XML and HTTP across networks and computing platforms. As an example, if an application is running on a LINUX® based system and wishes to communicate with the same application running on a Windows 7® based system this communication may be possible through the use of SOAP. SOAP facilitates this communication across operating systems at the application level (e.g., a word processor or spreadsheet application) by using HTTP and XML for the exchange of information.
SOAP requests, using XML, can contain three parts: a) process framework to describe what is in a SOAP message and how to process the message; b) application encoding rules for expressing data types of a message; and c) a convention for remote procedure calls, responses, and error handling.